
// Generated from Pin.g4 by ANTLR 4.13.1

#pragma once


#include "antlr4-runtime.h"
#include "PinParser.h"



/**
 * This class defines an abstract visitor for a parse tree
 * produced by PinParser.
 */
class  PinVisitor : public antlr4::tree::AbstractParseTreeVisitor {
public:

  /**
   * Visit parse trees produced by PinParser.
   */
    virtual std::any visitProgram(PinParser::ProgramContext *context) = 0;

    virtual std::any visitDefglobal(PinParser::DefglobalContext *context) = 0;

    virtual std::any visitGlobalstate(PinParser::GlobalstateContext *context) = 0;

    virtual std::any visitBlock(PinParser::BlockContext *context) = 0;

    virtual std::any visitStatement(PinParser::StatementContext *context) = 0;

    virtual std::any visitSignalState(PinParser::SignalStateContext *context) = 0;

    virtual std::any visitPass(PinParser::PassContext *context) = 0;

    virtual std::any visitDefvar(PinParser::DefvarContext *context) = 0;

    virtual std::any visitDeclareStruct(PinParser::DeclareStructContext *context) = 0;

    virtual std::any visitDefstvar(PinParser::DefstvarContext *context) = 0;

    virtual std::any visitOnest(PinParser::OnestContext *context) = 0;

    virtual std::any visitAssign(PinParser::AssignContext *context) = 0;

    virtual std::any visitAssginNoEnd(PinParser::AssginNoEndContext *context) = 0;

    virtual std::any visitAssignVar(PinParser::AssignVarContext *context) = 0;

    virtual std::any visitAssignStructVar(PinParser::AssignStructVarContext *context) = 0;

    virtual std::any visitRightvar(PinParser::RightvarContext *context) = 0;

    virtual std::any visitStRightVar(PinParser::StRightVarContext *context) = 0;

    virtual std::any visitAssignStOne(PinParser::AssignStOneContext *context) = 0;

    virtual std::any visitStFromExpr(PinParser::StFromExprContext *context) = 0;

    virtual std::any visitAssignOp(PinParser::AssignOpContext *context) = 0;

    virtual std::any visitPrintFormatPart(PinParser::PrintFormatPartContext *context) = 0;

    virtual std::any visitSingleExpr(PinParser::SingleExprContext *context) = 0;

    virtual std::any visitMultiExpr(PinParser::MultiExprContext *context) = 0;

    virtual std::any visitFmtString(PinParser::FmtStringContext *context) = 0;

    virtual std::any visitFormatPrintExpr(PinParser::FormatPrintExprContext *context) = 0;

    virtual std::any visitPrintExpr(PinParser::PrintExprContext *context) = 0;

    virtual std::any visitOutputExpr(PinParser::OutputExprContext *context) = 0;

    virtual std::any visitPinAutoAddSub(PinParser::PinAutoAddSubContext *context) = 0;

    virtual std::any visitStrExpr(PinParser::StrExprContext *context) = 0;

    virtual std::any visitLogAndExpr(PinParser::LogAndExprContext *context) = 0;

    virtual std::any visitLogOrExpr(PinParser::LogOrExprContext *context) = 0;

    virtual std::any visitRowStrExpr(PinParser::RowStrExprContext *context) = 0;

    virtual std::any visitAssignAutoAdd(PinParser::AssignAutoAddContext *context) = 0;

    virtual std::any visitSubExpr(PinParser::SubExprContext *context) = 0;

    virtual std::any visitParenthesesExpr(PinParser::ParenthesesExprContext *context) = 0;

    virtual std::any visitGreaterEqualExpr(PinParser::GreaterEqualExprContext *context) = 0;

    virtual std::any visitFloatExpr(PinParser::FloatExprContext *context) = 0;

    virtual std::any visitGreaterExpr(PinParser::GreaterExprContext *context) = 0;

    virtual std::any visitFmtStrExpr(PinParser::FmtStrExprContext *context) = 0;

    virtual std::any visitDivExpr(PinParser::DivExprContext *context) = 0;

    virtual std::any visitUnequalExpr(PinParser::UnequalExprContext *context) = 0;

    virtual std::any visitRemainderExpr(PinParser::RemainderExprContext *context) = 0;

    virtual std::any visitBoolValueExpr(PinParser::BoolValueExprContext *context) = 0;

    virtual std::any visitNegationExpr(PinParser::NegationExprContext *context) = 0;

    virtual std::any visitIntExpr(PinParser::IntExprContext *context) = 0;

    virtual std::any visitInExpr(PinParser::InExprContext *context) = 0;

    virtual std::any visitLessExpr(PinParser::LessExprContext *context) = 0;

    virtual std::any visitOrExpr(PinParser::OrExprContext *context) = 0;

    virtual std::any visitFlagExpr(PinParser::FlagExprContext *context) = 0;

    virtual std::any visitCharValueExpr(PinParser::CharValueExprContext *context) = 0;

    virtual std::any visitLogRevExpr(PinParser::LogRevExprContext *context) = 0;

    virtual std::any visitMultExpr(PinParser::MultExprContext *context) = 0;

    virtual std::any visitLessEqualExpr(PinParser::LessEqualExprContext *context) = 0;

    virtual std::any visitVarExpr(PinParser::VarExprContext *context) = 0;

    virtual std::any visitNotExpr(PinParser::NotExprContext *context) = 0;

    virtual std::any visitNotinExpr(PinParser::NotinExprContext *context) = 0;

    virtual std::any visitAddExpr(PinParser::AddExprContext *context) = 0;

    virtual std::any visitLogXorExpr(PinParser::LogXorExprContext *context) = 0;

    virtual std::any visitCallFunExpr(PinParser::CallFunExprContext *context) = 0;

    virtual std::any visitEqualExpr(PinParser::EqualExprContext *context) = 0;

    virtual std::any visitAndExpr(PinParser::AndExprContext *context) = 0;

    virtual std::any visitList(PinParser::ListContext *context) = 0;

    virtual std::any visitElement(PinParser::ElementContext *context) = 0;

    virtual std::any visitMap(PinParser::MapContext *context) = 0;

    virtual std::any visitMapelement(PinParser::MapelementContext *context) = 0;

    virtual std::any visitMapkey(PinParser::MapkeyContext *context) = 0;

    virtual std::any visitAtom(PinParser::AtomContext *context) = 0;

    virtual std::any visitRevVar(PinParser::RevVarContext *context) = 0;

    virtual std::any visitPinvar(PinParser::PinvarContext *context) = 0;

    virtual std::any visitListMapVar(PinParser::ListMapVarContext *context) = 0;

    virtual std::any visitListindex(PinParser::ListindexContext *context) = 0;

    virtual std::any visitStructMem(PinParser::StructMemContext *context) = 0;

    virtual std::any visitStructMemVar(PinParser::StructMemVarContext *context) = 0;

    virtual std::any visitStMemVar(PinParser::StMemVarContext *context) = 0;

    virtual std::any visitMemberFunAccess(PinParser::MemberFunAccessContext *context) = 0;

    virtual std::any visitFunobj(PinParser::FunobjContext *context) = 0;

    virtual std::any visitFunction(PinParser::FunctionContext *context) = 0;

    virtual std::any visitDefFunRet(PinParser::DefFunRetContext *context) = 0;

    virtual std::any visitFunretArg(PinParser::FunretArgContext *context) = 0;

    virtual std::any visitRetCode(PinParser::RetCodeContext *context) = 0;

    virtual std::any visitDefArgumentList(PinParser::DefArgumentListContext *context) = 0;

    virtual std::any visitDefArgument(PinParser::DefArgumentContext *context) = 0;

    virtual std::any visitFormat_string(PinParser::Format_stringContext *context) = 0;

    virtual std::any visitNoRetCallFun(PinParser::NoRetCallFunContext *context) = 0;

    virtual std::any visitWithRetCallFun(PinParser::WithRetCallFunContext *context) = 0;

    virtual std::any visitReturnCallFun(PinParser::ReturnCallFunContext *context) = 0;

    virtual std::any visitRealCallFun(PinParser::RealCallFunContext *context) = 0;

    virtual std::any visitMultiCallFun(PinParser::MultiCallFunContext *context) = 0;

    virtual std::any visitFun_ret(PinParser::Fun_retContext *context) = 0;

    virtual std::any visitRet_id(PinParser::Ret_idContext *context) = 0;

    virtual std::any visitArgumentList(PinParser::ArgumentListContext *context) = 0;

    virtual std::any visitArgument(PinParser::ArgumentContext *context) = 0;

    virtual std::any visitIf(PinParser::IfContext *context) = 0;

    virtual std::any visitZif(PinParser::ZifContext *context) = 0;

    virtual std::any visitQt(PinParser::QtContext *context) = 0;

    virtual std::any visitForState(PinParser::ForStateContext *context) = 0;

    virtual std::any visitWhileState(PinParser::WhileStateContext *context) = 0;

    virtual std::any visitForInState(PinParser::ForInStateContext *context) = 0;

    virtual std::any visitForwalk(PinParser::ForwalkContext *context) = 0;

    virtual std::any visitForinvar(PinParser::ForinvarContext *context) = 0;

    virtual std::any visitForinit(PinParser::ForinitContext *context) = 0;

    virtual std::any visitForinc(PinParser::ForincContext *context) = 0;

    virtual std::any visitBreak(PinParser::BreakContext *context) = 0;

    virtual std::any visitContinue(PinParser::ContinueContext *context) = 0;

    virtual std::any visitStruct_body(PinParser::Struct_bodyContext *context) = 0;

    virtual std::any visitStruct_var(PinParser::Struct_varContext *context) = 0;

    virtual std::any visitPinFlag(PinParser::PinFlagContext *context) = 0;

    virtual std::any visitUnknown(PinParser::UnknownContext *context) = 0;


};

